package rmi;

import java.rmi.*;
import java.sql.SQLException;
import java.util.List;

import entidade.Chamado;
import entidade.Divisao;
import entidade.Pessoa;
import entidade.Situacao;
import entidade.Usuario;


public interface InterfaceSPDManager extends Remote{
    
    public String olaMundo() throws RemoteException;
    
    //Chamado
    
    public String insereChamado(Chamado chamado) throws RemoteException, SQLException;
    public String alteraChamado(Chamado chamado) throws RemoteException, SQLException;
    public String excluiChamado(Chamado chamado) throws RemoteException, SQLException;
    public List<Chamado> retornaChamado(Chamado chamado) throws RemoteException, SQLException;
    public List<Chamado> listaChamado() throws RemoteException, SQLException;
    
    //Divisão
    
    public String insereDivisao(Divisao divisao) throws RemoteException, SQLException;
    public String alteraDivisao(Divisao divisao) throws RemoteException, SQLException;
    public String excluiDivisao(Divisao divisao) throws RemoteException, SQLException;
    public List<Divisao> retornaDivisao(Divisao divisao) throws RemoteException, SQLException;
    public List<Divisao> listaDivisao() throws RemoteException, SQLException;
    
    //Usuario
    
    public String insereUsuario(Usuario usuario) throws RemoteException, SQLException;
    public String alteraUsuario(Usuario usuario) throws RemoteException, SQLException;
    public String excluiUsuario(Usuario usuario) throws RemoteException, SQLException;
    public List<Usuario> retornaUsuario(Usuario usuario) throws RemoteException, SQLException;
    public List<Usuario> listaUsuario() throws RemoteException, SQLException;
    public Usuario validaUsuario(Usuario usuario) throws SQLException, RemoteException;
    
    //Pessoa
    
    public String inserePessoa(Pessoa pessoa) throws RemoteException, SQLException;
    public String alteraPessoa(Pessoa pessoa) throws RemoteException, SQLException;
    public String excluiPessoa(Pessoa pessoa) throws RemoteException, SQLException;
    public List<Pessoa> retornaPessoa(Pessoa pessoa) throws RemoteException, SQLException;
    public List<Pessoa> listaPessoa() throws RemoteException, SQLException;
    public List<Pessoa> listaCliente() throws RemoteException, SQLException;
    public List<Pessoa> listaTecnico() throws RemoteException, SQLException;
    
    //Situacao
    public String insereSituacao(Situacao situacao) throws RemoteException, SQLException;
    public String alteraSituacao(Situacao situacao) throws RemoteException, SQLException;
    public String excluiSituacao(Situacao situacao) throws RemoteException, SQLException;
    public Situacao retornaSituacao(Situacao situacao) throws RemoteException, SQLException;
    public List<Situacao> listaSituacao() throws RemoteException, SQLException;
}
